export function trim(str) {
  return String.prototype.trim.call(str);
}

export function isType(arg, type) {
  return Object.prototype.toString.call(arg) === '[object ' + type + ']';
}

const doc = null;
const CACHE_KEY = 'clear_0.0.1';
// const doc = window.document;

function get(key) {
  return uni.getStorageSync(key);
}

function all() {
  return uni.getStorageInfoSync();
}

function set(key, data, time) {
  if (!key) {
    return;
  }
  uni.setStorageSync(key, data);
}

function remove(key) {
  if (!key || !_has(key)) {
    return;
  }
  uni.removeStorageSync(key);
}

function clearAll() {
  const res = uni.getStorageInfoSync();
  res.keys.map((item) => {
    if (item == 'redirect' || item == 'spread' || item == CACHE_KEY) {
      return;
    }
    remove(item);
  });
}

function _has(key) {
  if (!key) {
    return;
  }
  let value = uni.getStorageSync(key);
  if (value) {
    return true;
  }
  return false;
}

export default {
  get,
  all,
  set,
  remove,
  clearAll,
  has: _has,
  CACHE_KEY,
};
